// pages/my/index.js
const system = require('../../utils/system.js');

// 获取应用实例
const app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {
      avatarUrl: '/images/default-avatar.png',
      nickName: '点击登录',
      level: '初级会员'
    },
    statusBarHeight: 0, // 状态栏高度
    navBarHeight: 0,    // 导航栏高度
    headerHeight: 0,    // 总体头部高度
    bottomSafeHeight: 0, // 底部安全区域高度
    isLoggedIn: false // 是否已登录
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 设置状态栏高度等数据
    this.setData({
      statusBarHeight: system.statusBarHeight,
      navBarHeight: system.navBarHeight,
      headerHeight: system.headerHeight,
      bottomSafeHeight: system.bottomSafeHeight
    });
    
    // 页面加载时执行
    this.checkLoginStatus();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 页面显示时执行，每次切换到tab时都会执行
    this.checkLoginStatus();
    
    // 获取自定义tabBar实例并调用init方法
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().init();
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  /**
   * 检查登录状态
   */
  checkLoginStatus() {
    console.log('检查登录状态:', app.globalData);
    
    const token = wx.getStorageSync('token');
    const userInfo = wx.getStorageSync('userInfo');
    
    console.log('本地存储:', { token, userInfo });
    
    if (token && userInfo) {
      this.setData({
        isLoggedIn: true,
        userInfo: {
          ...userInfo,
          avatarUrl: '/images/default-avatar.png', // 使用默认头像
          level: '初级会员', // 可以根据实际情况设置
          nickName: userInfo.nickname || userInfo.username // 使用nickname或username作为显示名
        }
      }, () => {
        console.log('更新后的页面数据:', this.data);
      });
    } else {
      this.setData({
        isLoggedIn: false,
        userInfo: {
          avatarUrl: '/images/default-avatar.png',
          nickName: '点击登录',
          level: '初级会员'
        }
      }, () => {
        console.log('更新后的页面数据:', this.data);
      });
    }
  },

  /**
   * 处理登录点击
   */
  handleLogin() {
    // 如果已登录，不做任何操作
    if (this.data.isLoggedIn) {
      return;
    }
    
    // 跳转到登录页面
    wx.navigateTo({
      url: '/pages/login/index'
    });
  },

  // 跳转到错题集
  navigateToMistakes() {
    console.log('跳转到错题集');
    wx.showToast({
      title: '前往错题集',
      icon: 'none'
    });
    
    // 跳转到错题集页面
    wx.navigateTo({
      url: '/pages/mistakes/index',
    });
  },

  /**
   * 跳转到留言页面
   */
  navigateToMessages() {
    console.log('跳转到留言页面');
    wx.navigateTo({
      url: '/pages/message/index',
      success: () => {
        console.log('成功跳转到留言页面');
      },
      fail: (error) => {
        console.error('跳转到留言页面失败:', error);
        wx.showToast({
          title: '跳转失败，请重试',
          icon: 'none'
        });
      }
    });
  },

  // 复制联系地址
  copyAddress() {
    const address = 'XXX省XXX市XXX县XXX路XXX号';
    wx.setClipboardData({
      data: address,
      success: function() {
        wx.showToast({
          title: '地址已复制',
          icon: 'success'
        });
      }
    });
  },

  // 拨打电话
  callPhone() {
    const phoneNumber = '13800000000';
    wx.showModal({
      title: '拨打电话',
      content: `确定要拨打 ${phoneNumber} 吗？`,
      success: function(res) {
        if (res.confirm) {
          wx.makePhoneCall({
            phoneNumber: phoneNumber,
            fail: function() {
              wx.showToast({
                title: '拨打电话失败',
                icon: 'none'
              });
            }
          });
        }
      }
    });
  },

  // 显示关于我们
  showAboutUs() {
    wx.showModal({
      title: '关于我们',
      content: '这是一个公务员学习助手小程序，提供考试练习、错题收集等功能。',
      showCancel: false
    });
  },

  /**
   * 处理退出登录
   */
  handleLogout() {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 更新全局登录状态
          app.updateLoginStatus(false);
          
          // 更新页面状态
          this.setData({
            isLoggedIn: false,
            userInfo: {
              avatarUrl: '/images/default-avatar.png',
              nickName: '点击登录',
              level: '初级会员'
            }
          });
          
          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          });
        }
      }
    });
  },

  /**
   * 跳转到注册页面
   */
  navigateToRegister() {
    wx.navigateTo({
      url: '/pages/login/index?register=true'
    });
  },
});